Map && HashSet 操作

HashMap与HashSet区别

collection框架有自己的接口和实现,主要分为Set接口,List接口和Queue接口。它们有各自的特点,Set的集合里不允许对象有重复的值,List允许有重复,它对集合中的对象进行索引,Queue的工作原理是FCFS算法(First Come, First Serve)。

什么是HashSet

HashSet实现了Set接口,它不允许集合中有重复的值,当我们提到HashSet时,第一件事情就是在将对象存储在HashSet之前,要先确保对象重写equals()和hashCode()方法,这样才能比较对象的值是否相等,以确保set中没有储存相等的对象。如果我们没有重写这两个方法,将会使用这个方法的默认实现。

添加元素:public boolean add(Object o)方法用来在Set中添加元素,当元素值重复时则会立即返回false,如果成功添加的话会返回true。

什么是HashMap

HashMap实现了Map接口,Map接口对键值对进行映射。Map中不允许重复的键。Map接口有两个基本的实现,HashMap和TreeMap。TreeMap保存了对象的排列次序,而HashMap则不能。HashMap允许键和值为null。HashMap是非synchronized的,但collection框架提供方法能保证HashMap synchronized,这样多个线程同时访问HashMap时,能保证只有一个线程更改Map。

添加元素:public Object put(Object Key,Object value)方法用来将元素添加到map中。

总结

HashMap HashSet
HashMap实现了Map接口 HashSet实现了Set接口
HashMap储存键值对 HashSet仅仅存储对象
使用put()方法将元素放入map中 使用add()方法将元素放入set中
HashMap中使用键对象来计算hashcode值 HashSet使用成员对象来计算hashcode值,对于两个对象来说hashcode可能相同,所以equals()方法用来判断对象的相等性,如果两个对象不同的话,那么返回false
HashMap比较快,因为是使用唯一的键来获取对象 HashSet较HashMap来说比较慢
HashMap比较快,因为是使用唯一的键来获取对象 HashSet较HashMap来说比较慢

HashSet基本操作

http://www.52ij.com/jishu/java/99023.html

Set example=new HashSet<>() 新建一个set

set.add(key) 添加元素

set.isEmpty() 判断是否为空

set.contains(key) 判断是否包含key值

set.remove(key) 从set中删除key值

set.clear() 删除set中的所有元素

HashMap基本操作

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
public class HashMapDemo03{
public static void main(String args[]){
Map<String,String> map = null; // 声明Map对象,其中key和value的类型为String
map = new HashMap<String,String>() ;
map.put("mldn","www.mldn.cn") ; // 增加内容
map.put("zhinangtuan","www.zhinangtuan.net.cn") ; // 增加内容
map.put("mldnjava","www.mldnjava.cn") ; // 增加内容
Set<String> keys = map.keySet() ; // 得到全部的key
Collection<String> values = map.values() ; // 得到全部的value
Iterator<String> iter = keys.iterator() ;
while(iter.hasNext()){
String str = iter.next() ;
System.out.print(str + "、") ;
}
}
};

HashMap\ example=new HashMap\()

新建map

map.values() 得到map全部的value

map.keySet() 得到map的全部key值

map.put(key,value) 向map中插入键值对

map.get(key) 从map中获取key对应的value

map.containsKey(key) 是否包含key

map.containsValue(value) 是否包含value

map.isEmpty() map是否为空

map.remove(key) 从map中删除键值为key的键值对

map.size() 获得map的大小

map.clear() 清除map内的所有数据

map.getOrDefault(Object key,V defaultValue) 假如有key对应值就返回对应值,假如没有就返回default值

How to use getordefault